package com.mvp.shq.washer.ui.orderConfirm;

import com.mvp.shq.washer.base.BaseModel;
import com.mvp.shq.washer.base.BasePresenter;
import com.mvp.shq.washer.base.BaseView;
import com.mvp.shq.washer.entity.WxPayBean;
import com.mvp.shq.washer.entity.result.AliPay;
import com.mvp.shq.washer.entity.result.AlipayResult;
import com.mvp.shq.washer.entity.result.BaseResult;
import com.mvp.shq.washer.entity.OrderResponse;
import com.mvp.shq.washer.entity.result.OrderResult;
import com.mvp.shq.washer.entity.result.WasherInfoResult;
import com.mvp.shq.washer.entity.result.WxPayResult;

import io.reactivex.Observable;

/**
 * Created by Administrator on 2017/8/28.
 */

public interface OrderConfirmConstract {
    interface Model extends BaseModel{
        Observable<BaseResult<String>> getSign(String token,String orderNo);
        Observable<BaseResult<AliPay>> alipayPay(String token, OrderResponse orderDto);
        Observable<BaseResult<WxPayResult>> wxPay(String token, OrderResponse orderDto);
        Observable<BaseResult<WasherInfoResult>> getWasherInfo(String token, String washerNo);
    }
    interface View extends BaseView{
        void getSignS(String orderStr);
        void getSignF(String msg);
        void alipayS(AliPay data);
        void alipayF(String msg);
        void wxPayS(WxPayResult result);
        void getWasherInfoS(WasherInfoResult washerInfoResult);
    }
    public abstract class Presenter extends BasePresenter<Model,View>{
        abstract void getAlipay(String orderNo);
        abstract void alipay(OrderResponse orderDto);
        abstract void wxPay(OrderResponse orderDto);
        abstract void getWasherInfo(String washerNo);
    }
}
